home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / CMPLTPAS / DRAWMARK.PAS < prev    next >
Pascal/Delphi Source File  |  1988-10-06  |  2KB  |  43 lines

  1. {->>>>DrawMarker<<<<-------------------------------------------}
  2. {                                                              }
  3. { Filename : DRAWMARK.SRC -- Last Modified 7/10/88             }
  4. {                                                              }
  5. { This routine uses relative line draws to draw "polymarkers"  }
  6. { at the current pointer (CP).  The patterns to be drawn are   }
  7. { arrays of "deltas", each delta being a "change in X" and     }
  8. { "change in Y" integer pair.  The first pair is a MOVE not a  }
  9. { line draw, to allow the marker to be drawn entirely away     }
  10. { from the CP.                                                 }
  11. {                                                              }
  12. { This routine may only be used in graphics mode.              }
  13. {                                                              }
  14. {     From: COMPLETE TURBO PASCAL 5.0  by Jeff Duntemann       }
  15. {    Scott, Foresman & Co., Inc. 1988   ISBN 0-673-38355-5     }
  16. {--------------------------------------------------------------}
  17.  
  18. TYPE
  19.   PointArray = ARRAY[0..9,0..1] OF Integer;
  20.  
  21. CONST
  22.   Lozenge : PointArray =
  23.   ((0,-3),(-3,3),(3,3),(3,-3),(-3,-3),(0,0),(0,0),(0,0),(0,0),(0,0));
  24.   Cross   : PointArray =
  25.   ((0,0),(0,-3),(0,6),(0,-3),(3,0),(-6,0),(0,0),(0,0),(0,0),(0,0));
  26.   Square  : PointArray =
  27.   ((-2,-2),(0,4),(4,0),(0,-4),(-4,0),(0,0),(0,0),(0,0),(0,0),(0,0));
  28.  
  29. PROCEDURE DrawMarker(Marker : PointArray);
  30.  
  31. VAR
  32.   I : Integer;
  33.  
  34. BEGIN
  35.   MoveRel(Marker[0,0],Marker[0,1]);  { First pair is relative move }
  36.   I := 1;    { Start drawing with coordinate pair 1, not 0! }
  37.   WHILE NOT ((Marker[I,0] = 0) AND (Marker[I,1] = 0)) DO
  38.     BEGIN
  39.       LineRel(Marker[I,0],Marker[I,1]);
  40.       Inc(I)
  41.     END
  42. END;
  43.